package com.whoiszxl.cqrs.response;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 退货入库订单表
 * </p>
 *
 * @author whoiszxl
 * @since 2022-03-18
 */
@Data
@TableName("wms_inbound_return_order")
@Schema(description = "退货入库订单表")
public class InboundReturnOrderResponse implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "主键")
      @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @Schema(description = "仓库ID")
    private Long warehouseId;

    @Schema(description = "货架ID")
    private Long warehouseShelfId;

    @Schema(description = "用户账号ID")
    private Long memberId;

    @Schema(description = "订单ID")
    private Long orderId;

    @Schema(description = "订单编号")
    private String orderNo;

    @Schema(description = "退货入库单状态, 1:编辑中, 2:待审核:3:已完成")
    private Integer inboundReturnOrderStatus;

    @Schema(description = "收货人")
    private String receiveName;

    @Schema(description = "收货地址")
    private String receiveAddress;

    @Schema(description = "收货人电话号码")
    private String receivePhone;

    @Schema(description = "用户支付运费")
    private BigDecimal freight;

    @Schema(description = "支付方式: [1:支付宝 2:微信 3:数字货币]")
    private Integer payType;

    @Schema(description = "订单总额")
    private BigDecimal totalAmount;

    @Schema(description = "运费金额")
    private BigDecimal freightAmount;

    @Schema(description = "促销折扣金额")
    private BigDecimal promotionAmount;

    @Schema(description = "积分抵扣金额")
    private BigDecimal pointAmount;

    @Schema(description = "优惠券抵扣金额")
    private BigDecimal couponAmount;

    @Schema(description = "后台调整订单使用的折扣金额")
    private BigDecimal adminDiscountAmount;

    @Schema(description = "应付总额")
    private BigDecimal payAmount;

    @Schema(description = "订单备注")
    private String orderComment;

    @Schema(description = "退货原因, 1:质量不好, 2:商品不满意, 3:买错了, 4:无理由退货")
    private Integer returnReason;

    @Schema(description = "退货备注")
    private String returnComment;

    @Schema(description = "到货时间")
    private LocalDateTime arrivalTime;

    @Schema(description = "乐观锁")
    @Version
    private Long version;

    @Schema(description = "逻辑删除 1: 已删除,  0: 未删除")
    @TableLogic
    private Integer isDeleted;

    @Schema(description = "创建者")
    private String createdBy;

    @Schema(description = "更新者")
    private String updatedBy;

    @Schema(description = "创建时间")
    private LocalDateTime createdAt;

    @Schema(description = "更新时间")
    private LocalDateTime updatedAt;


}
